package org.dromara.hm.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import org.dromara.hm.domain.HmTodoItems;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 代办事项视图对象 hm_todo_items
 *
 * @author zy Hu
 * @date 2024-12-15
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = HmTodoItems.class)
public class HmTodoItemsVo implements Serializable
{

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 代办事项id
     */
    private Long todoId;

    /**
     * 待办事项类型
     */
    @ExcelProperty(value = "待办事项类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "to_do_type")
    private String todoType;

    /**
     * 待办事项描述
     */
    @ExcelProperty(value = "待办事项描述")
    private String todoDesc;

    /**
     * 出库单
     */
    private Long todoOutboundOrder;

    /**
     * 入库单
     */
    private Long todoWarehouseReceipt;

    /**
     * 入库数量
     */
    @ExcelProperty(value = "入库数量")
    private Integer todoStockNum;

    /**
     * 出库店铺ID
     */
    private Long todoOutboundDept;

    /**
     * 入库店铺id
     */
    private Long todoStockDept;

    /**
     * 入库商品
     */
    private Long todoStockGoodsId;

    /**
     * 入库商品名称
     */
    @Translation(type = TransConstant.PRODUCT_ID_TO_NAME, mapper = "todoStockGoodsId")
    private String todoStockGoodsName;

    /**
     * 入库店铺名称
     */
    @ExcelProperty(value = "入库店铺")
    @Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "todoStockDept")
    private String todoStockDeptDesc;

    /**
     * 待办人id
     */
    private Long todoPersonId;

    /**
     * 待办人名称
     */
    @ExcelProperty(value = "待办人")
    @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "todoPersonId")
    private String todoPersonName;

    /**
     * 办事附件
     */
    private List<String> todoFiles;

    /**
     * 办事附件
     */
    private String todoFile;

    /**
     * 办事结果
     */
    private String todoResult;

    /**
     * 办结时间
     */
    private Date todoCompletionTime;

    /**
     * 状态
     */
    private String status;

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建方式(0:自建,1:系统生成)
     */
    @ExcelProperty(value = "创建方式(0:自建,1:系统生成)")
    private String createType;

    /**
     * 回访客户id
     */
    private Long followCustomerId;

    /**
     * 回访客户名称
     */
    @Translation(type = TransConstant.CUSTOMER_ID_TO_NAME,mapper = "followCustomerId")
    private String followCustomerName;

    /**
     * 回访类型(家访;到店;电话)
     */
    private String followType;

    /**
     * 回访时间
     */
    private Date followTime;

    /**
     * 参会时间
     */
    private Date followMeetingTime;

    /**
     * 参会地点
     */
    private String followMeetingLocation;

    /**
     * 会议内容
     */
    private String followMeetingInfo;

    /**
     * 领取礼品
     */
    private String followMeetingGifts;

    /**
     * 满意度(非常满意;满意;一般;不满意)
     */
    private String followMeetingLevel;

    /**
     * 生成时间
     */
    private Date createTime;

    /**
     * 提醒时间
     */
    private Date remindTime;
    /**
     * 订单表id
     */
    private Long orderId;

    // 第二阈值提醒人id
    private Long todoTwoPersonId;

    // 第二阈值提醒人名称
    private String todoTwoPersonName;

    // 第二阈值提醒时间
    private Date useTimeTwo;

    /**
     * 店长点评
     */
    private String managerEvaluation;
    /**
     * 店长打分
     */
    private String managerRating;

    /**
     * 总监评价
     */
    private String directorEvaluation;
    /**
     * 总监打分
     */
    private String directorRating;
    /**
     * 董事长评价
     */
    private String ceoEvaluation;
    /**
     * 董事长打分
     */
    private String ceoRating;

    /**
     * 订单回访阈值触发天数
     */
    private Integer thresholdDays;

    /**
     * 退货单号
     */
    private Long returnOrderId;

    /**
     * 提交人ID
     */
    private Long submitterId;

    /**
     * 提交人姓名
     */
    @ExcelProperty(value = "提交人")
    @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "submitterId")
    private String submitterName;

    /**
     * 审核人ID
     */
    private Long approverId;

    /**
     * 审核人姓名
     */
    @ExcelProperty(value = "审核人")
    @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "approverId")
    private String approverName;
}
